$(function () {
  // 需求1:定义校验规则
  let form = layui.form
  form.verify({
    nickname: [/^[\S]{1,10}$/, '昵称的长度为1-10个字符']
  })

  // 需求2: 渲染用户信息 - 封装成函数, 后面还要用
  // 函数不调用.不执行
  let layer = layui.layer
  initUserInfo()
  function initUserInfo() {
    axios({
      method: 'get',
      url: '/my/userinfo'
    }).then(({ data: res }) => {
      console.log(res)
      // 判断
      if (res.status !== 0) {
        return layer.msg(res.message)
      }
      // 根据官网,为form表单赋值
      // 内置模块->表单->表单赋值/取值
      form.val('formUserInfo', res.data)
    })
  }

  // 需求3:表单重置
  // 1.给form绑定reset事件
  // 2.给按钮绑定点击事件
  // $('form').on('reset', function (e) {
  $('#btnReset').on('click', function (e) {
    e.preventDefault() //阻止默认事件
    // 重新渲染form表单
    initUserInfo()
  })

  // 需求4:修改用户信息
  $('form').on('submit', function (e) {
    e.preventDefault() //阻止默认事件
    axios({
      method: 'POST',
      url: '/my/userinfo',
      // 设置了 参数: 根据参数类型会设置头信息; a=1&b=2&c=3
      data: $(this).serialize()
    }).then(({ data: res }) => {
      console.log(res)
      if (res.status !== 0) {
        return layer.msg(res.message)
      }
      // 成功:提示
      layer.msg('修改用户信息成功')
      // 直接调用无效, 因为不是一个window对象
      window.parent.getUserInfo()
    })
  })
})
